package com.hoshiicloud.saleorder.dto;

import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
* <p>
* skuVo 包含基础sku和扩展sku
* </p>
*
* @author zhangshuhu
* @since 2019-05-05
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class SkuDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long companyId;
    /**
     * 平台id
     */
    @ApiModelProperty(value = "平台id")
    private Long platformId;
    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺id")
    private Long storeId;
    /**
     * 扩展spuId
     */
    @ApiModelProperty(value = "扩展spuId")
    private Long spuId;

    /**
     * spu编号
     */
    @ApiModelProperty(value = "spu编号")
    private String spuNo;

    /**
     * 基础skuId
     */
    @ApiModelProperty(value = "基础skuId")
    private Long skuId;

    /**
     * 扩展skuId
     */
    @ApiModelProperty(value = "扩展skuId")
    private Long extSkuId;
    /**
     /**
     * 分配数量
     */
    @ApiModelProperty(value = "分配数量")
    private BigDecimal quantity;


    /**
     * 冻结数量
     */
    @ApiModelProperty(value = "冻结数量")
    private BigDecimal freezes;


    /**
     * 扩展Spu商品标题
     */
    @ApiModelProperty(value = "扩展Spu商品标题")
    private String spuTitle;

    /**
     * 扩展sku标题
     */
    @ApiModelProperty(value = "扩展sku标题")
    private String skuTitle;

    /**
     * 扩展sku图片
     */
    @ApiModelProperty(value = "扩展sku图片")
    private String skuImage;


    /**
     * 售价
     */
    @ApiModelProperty(value = "售价")
    private BigDecimal goodsPrice;


    /**
     * 属性
     */
    @ApiModelProperty(value = "属性")
    private String extendProperty;


    /**
     * 规格
     */
    @ApiModelProperty(value = "规格")
    private String extendSpec;



    /**
     * 状态 0-待审批 1-审批未过 2-已上架 3-已下架
     */
    @ApiModelProperty(value = "状态 0-待审批 1-审批未过 2-已上架 3-已下架")
    private Integer status;


    /**
     * 库存检验逻辑：1-库存足够才能下单 2-库存不够也能下单
     */
    @ApiModelProperty(value = "库存检验逻辑：1-库存足够才能下单 2-库存不够也能下单")
    private Integer storeEnough;

    @ApiModelProperty(value = "采购策略  1-指定供应商 2-系统派单")
    private Integer strategy;

    @ApiModelProperty(value = "自己作为供应商  1-是 2-否")
    private Integer vendorSelf;

    @ApiModelProperty(value = "指定供应商ID")
    private Long vendorId;

    /**
     * 提货间隔时间，以天为单位
     */
    @ApiModelProperty(value = "提货间隔时间，以天为单位")
    private Integer receiptInterval;

    /**
     * 提货日期
     */
    @ApiModelProperty(value = "提货日期")
    private LocalDateTime receiptDate;
}
